//============================================================================
// Name        : mgoo2.cpp
// Author      : Jose Garrillo
// Version     :
// Copyright   : 
// Description : Ejemplo uso de librería multimalla
//============================================================================

#include <iostream>
#include <sys/time.h>
#include <Multimalla.h>
using namespace std;

template <int N>
void Multimalla<N>::entrada(){
	for (int i=0; i<m[N-1].Size_i(); i++){
		for(int j=0;j<m[N-1].Size_j();j++){
			m[N-1].Set_V(i,j,0);
			m[N-1].fijar_variable(i,j);
			if((i==0)||(i==m[N-1].Size_i()-1)||(j==0)||(j==m[N-1].Size_j()-1)){
				m[N-1].fijar_frontera(i,j);
			}
			if((i>=24&&i<=40)&&(j>=24&&j<=40)){
				m[N-1].Set_V(i,j,5);
				m[N-1].fijar_frontera(i,j);
			}
		}
	}
}



int main() {
    struct timeval ti, tf;
    double tiempo;
    gettimeofday(&ti, NULL);   // Instante inicial

	Multimalla<5> m(56,57,0,1,0,1);
	m.entrada();
	m.Ciclo_V(50,1000,100,10000,1e-4);

	gettimeofday(&tf, NULL);   // Instante final
	tiempo= (tf.tv_sec - ti.tv_sec)*1000.0 + (tf.tv_usec - ti.tv_usec)/1000.0;

//Salida de resultados
	m.output_file(4);
	cout<<"Tiempo de ejecucion: "<<tiempo<<" ms"<<endl;
	return 0;
}
